package com.itheima.day08;
/*
   //第四题:

    我国的居民身份证号码，由由十七位数字本体码和一位数字校验码组成。
    请定义方法--判断用户输入的身份证号码是否合法，
    并在主方法中调用方法测试结果。
    规则为：号码为18位，不能以数字0开头，前17位只可以是数字，
    最后一位可以是数字或者大写字母X。

 */



import java.util.Scanner;

public class HomeWork02 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入身份证号:");

        String UserId=sc.nextLine();
        checkId(UserId);



    }

    public static void  checkId(String str){

            StringBuilder st = new StringBuilder(str);

       //     System.out.println("长度为:"+st.length());

            //判断号码为18位,不能以数字0开头
            if (st.length() == 18 && st.charAt(0) > '0'
                    && st.charAt(0) <= '9') {

                //前17位只可以是数字, 最后一位可以是数字或者大写字母X。
                for (int i = 1; i < st.length()-1; i++) {
                    if (st.charAt(i) >= '0' && st.charAt(i) <= '9') {
                        if (st.charAt(17)>='0' && st.charAt(17) <= '9'
                                ||st.charAt(17)=='X'){
                            System.out.println("验证通过!!");
                            break;
                        }else {
                            System.out.println("输入有误,请正确输入!!");
                            break;
                        }
                    }else{
                        System.out.println("输入有误,请正确输入!!");
                        break;
                    }
                }

            }else{
                System.out.println("输入有误,请正确输入!!");
            }


        }


}
